Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drive invalid in AXI VCs #802

Closed
wants to merge 1 commit into from
Closed

Drive invalid in AXI VCs #802

wants to merge 1 commit into from

Conversation

LukasVik
Copy link
Contributor

When the 'valid' signal is low for an AXI (-Lite) channel, the signals of the channel should be driven with 'X'.
They should not keep their value from the last time the channel was valid.
This can hide errors in the DUT if the DUT samples values in the wrong clock cycle.

This change is largely inspired by the AXI-Stream VCs.

drive_w_invalid;

loop
wait until rising_edge(aclk) and not is_empty(message_queue);
Copy link
Contributor Author

@LukasVik LukasVik Feb 18, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is mainly an indentation change due to the loop statement. Github renders it really bad.

@LukasVik
Copy link
Contributor Author

Note that this changes the default behavior of the three VCs, so in some sense it is a breaking change. This could be changed by setting the default value drive_invalid generic to false. Though having it set to true is symmetric with the AXI-Stream VCs. And in my personal opinion it should be enabled in pretty much all cases, to get a stronger test.

@LudvigVidlid
Copy link
Contributor

Looks good to me! Added a small comment on an unused constant.

@LukasVik
Copy link
Contributor Author

@LarsAsplund Sorry to ping you like this, but would it be possible to merge this? It has been reviewed by Ludvig.

@std-max
Copy link
Contributor

std-max commented May 31, 2022

LGTM too.
I would even say that this should not be a generic settings as it should be the default behaviour. Maybe for v5.0?
But for the next minor release, yeah we need that generic.

@LarsAsplund
Copy link
Collaborator

@LukasVik Sorry for the delay. It's in the pipe but unfortunately I haven't had time to work on that pipe. Been more of that lately so I will deal with shortly... I hope

@LukasVik
Copy link
Contributor Author

LukasVik commented Jun 2, 2022

@LarsAsplund No problem at all, I know how it is.

@std-max Well with the default value true of the drive_invalid generic it is the default behavior. Which is a breaking change since the ports used to keep their value before. The generic configuration, and the default behavior, is now symmetric with the AXI-Stream verification components.

With that said, I agree with you in the sense that I personally will always leave the drive_invalid generic as true. Off the top of my head I can not think of a scenario where I would not. But perhaps I am missing something.

When the 'valid' signal is low for an AXI (-Lite) channel, the signals of the channel should be driven with 'X'.
They should not keep their value from the last time the channel was valid.
This can hide errors in the DUT if the DUT samples values in the wrong clock cycle.

This change is largely inspired by the AXI-Stream VCs.
@LukasVik
Copy link
Contributor Author

I rebased the source branch upon upstream master in order to solve a merge conflict. No functional changes apart from that. Is ready for review/merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants